Chroma plots don’t work well for Techno/Breakbeat songs. Timbre to the rescue, showing us the breakdown of the song!


We are going to look at a song called Brainstorm from Special Request. This is an techno-like song which has a lot of changes troughout the song. There is some piano involved and some singing, however not troughout the whole song. Therefore it is difficult to see something out of the chroma plot, as it’s not as easy as with classical music. This can be seen from the chroma plot. On the x-axis we have the time and on the y-axis the chroma. It’s hard to conclude anything from this plot at all.

The timbre shows a little bit better what’s going on. The song starts with a slow buildup with some high heads and some minimal vocals (Kicking up in the brainstorm), which you can see in the beginning. Then you can see a very big change around 60 seconds, this is where a very heavy bass kicks in. It also shows a single weird moment around 240 seconds, this is because here there is 1 small sample of a vocal which has not been in the song before and is only played here.

SSM matrixes Showing us what’s actually going on.


The chroma plot did not give us much information, however the Chroma SSM gives us loads of info. On the x-axis and the y-axis we can see the names describing the start of a new music block. For instance, the song starts with a slow buildup at 0 sec untill around 60 sec (1:00), here a new block starts with some heavy bass, then at 100 sec (1:40) the block is still the same as before, but the high heads kick in. At 130 sec (2:10) the Piano block starts, where at 190 sec (3:08) the Bass block with high heads is repeated. Then at 244 sec (4:05) the Piano block is repeated and at 305 sec (5:02) the autro block starts. Listen to the song to find out!

If we look at the Timbre SSM again we see the breakdown at 60 seconds, this time even more clearly. As the song starts with some bass, high heads and some low vocals all of a sudden at 60 seconds a lot of low bass is added and this is easy to see by the yellow line at 60 seconds. Also we see a clear change at 244 seconds (4:02-4:05). This is because of that one weird vocal sample that is only played here.

Interactive Timbre SSM


Here we see the SSM of Timbre again, but as an interactive plot.

Take a look at the file again to check the specific moments.

Different Distances for Timbre


Using Cosine as the distance for the timbre SSM, we get more structure into the plot, however the very obvious changes we mentioned before become less obvious. But differences between certain blocks become more obvious, depending on what you want to show people you can make a choice.

Will my Discover Weekly transform into Alex?


My Favourites playlist in Spotify, the playlist of my boyfriend Alex and my discover weekly differ quite a lot. Assuming that discover weekly adapts to what you listen to (the most this article),

I will perform an experiment where I will listen ONLY to my boyfriends playlist for the coming 8 weeks, to see if my Discover Weekly will transform to look lilke my Boyfriends playlist.

The most interesting features to me seem to be Danceability, Energy, Instrumentalness and Tempo.

On the left we see a plot for the Energy, Danceability and Instrumentalness for each playlist, where we use the data of week 1 for discover weekly. The plot wasn’t very interpretable when using all the data from Alex’s and my playlist, as they have so many songs. Thus, I have randomly sampled 500 songs from Alex’s and my Favorites, to make it more clear-cut. Also we can observe that my Favorite’s has some more songs which are less danceable than Alex’s playlist and discover weekly. And that in general, discover weakly has less of a spread for danceability and energy.

The left plot however is hard to interpret, therefore we could look for instance just at the danceability and energy of each playlist. This is what we see on the right. This shows us very clearly that spotify weekly’s data isn’t very spread. For instance, looking at the green line, we can see that the danceability nor the energy go below 0.3 for discover weekly. However, these two plots don’t show us that well how any of the variables are distributed. THus we will look at some histograms per feature.

The Baseline differences


Here we look at some baseline comparisons, as these are important to look at them later on again. For every plot you get a specific feature on the x-axis and the amount on the y-axis. Note that the values of the y-axes differ for the playlists, as discover weekly only has 30 songs and the other 2 have around 3000 songs. These plots clearly show the differences of how the songs are distributed for the different playlists.

For instance, Discover weekly has less energetic songs than the other two. The tempo mostly lies around 125 bmp, whereas the other 2 are more spread.

We now see that only information on the mean of the data, does not give us enough.

The transformation so far?!


This Plot shows us the changes over the 3 weeks for each feature. The values shown are the means of the absolute. The tempo values are devided by 100, else they wouldn’t fit on the plot. Thus tempo= 1.16 equals tempo=116 (am still figuring out how to solve this). The first thing to notice is the big increase in instrumentalness. Whereas the other variables are still fluctuating a lot over time. However, these values only show us the mean values and we have seen before that the distribution of the data might be skewed, therefore we should look at other measures, like the median (I have not had time for this yet, will work on it the coming week).

More plots of mean changes


Another visualisation here showing the Energy in size, the instrumentalness in color and the Danceability on the y-axis. Where the weeks are given on the x-axis.

Changes of the absolute values


These plot respresent week 1 and week 4 of discover weekly, showing the distribution of all 4 features.

The Chroma of Alex’s least Danceable Song


After doing some research, I found out that Alex’s least danceable song is Lacrimosa, from Amadeus Mozart, which is quite funny as it is one of our favorite classical music songs, which we sing all the time. Looking at the chroma plots, where we can sort of see that this song is played in d minor, which consists of D, E, F, G, A, B♭, and C.Luckily for me, I also have this song in my playlist, a slightly different version from the Choir of King’s College, meaning there might be some more polyphonic parts in this version. However you can clearly see the similarities of the two chroma plots.

Dynamic Time Warping Lacrimosa?


Now we can use Dynamic Time Warping to compute the most optimal alignment between the two features sequences. As hroma norm and distance measure manhattan was chosen, the other options did not seem to work well for this data. We can see the black line diagonally, expressing the optimal warping path.